<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>let and const</title>
</head>
<body>
    <script>
//es5

/*var num = 10
var name = "gx"
console.log(num,name)

var num = 30
console.log(num)*/

// es6 let 和 const
//一：let 声明变量
// 1. let 不可以重复声明变量，var可以重复
// 2. let不允许声明提升，var 可以声明提升
// 3. let声明变量支持作用域的限制，var不受限制


/*{
    var a = 10
    let b = 20
}
console.log(a)
console.log(b)*/


// 4. var声明的变量会挂载到顶层对象上，let不会
// 5. 我可以在声明之前使用，这个变量交声明提示
/* eg

console.log(age);
var age =10;


var a = 10
let b = 20
console.log(window.a)
console.log(window.b)*/

//二：sonst 声明常量
// const 与 var
//1. const 不能重复声明常量
//2. const 不支持声明提升
//3. const常量受到代码块限制，产生独立作用域
//4. const 不挂载到顶层对象
//5. const 与let的差别：let可以声明的时候不赋值，const要赋值
//const 声明的常量不能被改变

    </script>
</body>
</html>